<?php

class EmprestimoController extends Zend_Controller_Action
{
    public function init()
    {

    }

    public function indexAction(){
            $this->redirect('/cliente/listar');
    }

    public function cadastrarAction(){
        $this->_helper->viewRenderer->setNoRender();

        $post = $this->getAllParams();
        $idCliente = $this->getParam('Cliente_id');
        
        if (!is_null($this->getParam('msg')))
            $this->view->msg = Messages::getMessage($this->getParam('msg'));

        if (!empty($post['inicio'])){
                $tBanco = new DbTable_Emprestimo();
                $banco = $tBanco->createRow($this->getAllParams());
                $banco->save();
                $this->redirect("/cliente/show/msg/6/id/{$idCliente}");
        }
    }
    
    public function anexarAction(){
        $this->_helper->viewRenderer->setNoRender();
        
        $uploaddir = APPLICATION_PATH.'/tmp/anexos/';
        $post = $this->getAllParams();
        
        $extensao = explode('.', $_FILES['arquivo']['name']);
        $extensao = $extensao[1];
        
        $countAnexos = DbTable_Anexo::getCountAnexo($post['Emprestimo_Cliente_id'], $post['Emprestimo_id'], $post['parcela']);

        $idRefAnexo = ++$countAnexos;
        
        $fileName = $post['Emprestimo_id'] . '_' . $post['Emprestimo_Cliente_id'] . '_' . $post['parcela'] . '_' . $idRefAnexo;
        $uploadfile = $uploaddir . $fileName . '_' . $_FILES['arquivo']['name'];

        if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploadfile)){
            $tAnexo = new DbTable_Anexo();
            $anexo = $tAnexo->createRow($post);
            $anexo->nome_arquivo = $fileName . '_' . $_FILES['arquivo']['name'];
            $anexo->save();
        }else{
            echo "Arquivo não enviado";
        }

        $this->redirect("/cliente/show/id/{$post['Emprestimo_Cliente_id']}");
    }   
    
    
    public function listarAction(){
        
        $cliente = $this->getParam('cliente');
        $emprestimo = $this->getParam('emprestimo');
        $this->view->idCliente = $cliente;
        $this->view->anexos = DbTable_Anexo::getAnexos($cliente, $emprestimo);
    }       
    
    
    public function excluirAnexoAction(){
        $this->_helper->viewRenderer->setNoRender();
        
        $tAnexo = new DbTable_Anexo();
        $anexo = $tAnexo->find($this->getParam('id'))->current();
        
        $uploaddir = APPLICATION_PATH.'/tmp/anexos/';
        $fileName = $uploaddir . $anexo->nome_arquivo;
        $idCliente =$anexo->Emprestimo_Cliente_id;
        $idEmprestimo = $anexo->Emprestimo_id;
        if (unlink($fileName)){
            $anexo->delete();
        }else{
            echo 'erro';
        }
        
        $this->redirect("/emprestimo/listar/cliente/{$idCliente}/emprestimo/{$idEmprestimo}");
        
    }
    
    
    public function verArquivoAction(){
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
        
        $tAnexo = new DbTable_Anexo();
        $anexo = $tAnexo->find($this->getParam('id'))->current();
        
        $file = APPLICATION_PATH . '/tmp/anexos/'. $anexo->nome_arquivo;

        
        header('Content-type: application/pdf');
        header("Content-Disposition: inline; filename='".$file."'");
        header('Content-Transfer-Encoding: binary');
        header('Content-Length: '.filesize($file));
        header('Accept-Ranges: bytes');

        @readfile($file);
    }
    
    
    public function removerAction(){
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
        
        $id = $this->getParam('id');
        
        
        $tEmprestimo = new DbTable_Emprestimo();
        $emprestimo = $tEmprestimo->find($id)->current();
        $clienteId = $emprestimo->Cliente_id;
        
        $tAnexo = new DbTable_Anexo();
        $anexos = $tAnexo->fetchAll(array('Emprestimo_id = (?)' => $id));
        
        $uploaddir = APPLICATION_PATH.'/tmp/anexos/';
        
        foreach ($anexos as $anexo) {
            $fileName = $uploaddir . $anexo->nome_arquivo;
            if (unlink($fileName)){
                $anexo->delete();
            }
        }
        
        $emprestimo->delete();
       
        
        $this->redirect("/cliente/show/id/{$clienteId}");
    }    
}

